package com.qin.mall.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qin.mall.domain.PmsProduct;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qin.mall.dto.PmsProductParam;
import com.qin.mall.dto.PmsProductQueryParam;
import com.qin.mall.dto.PmsProductResult;

import java.util.List;

/**
* @author 覃剑
* @description 针对表【pms_product(商品信息)】的数据库操作Service
* @createDate 2022-11-07 11:19:33
*/
public interface PmsProductService extends IService<PmsProduct> {

    // TODO 创建商品
    int create(PmsProductParam productParam);

    // TODO 查询商品信息不关联其他信息
    PmsProduct select(Long id);

    // TODO 根据商品编号获取更新前的信息,和其他关联的所有的信息
    PmsProductResult getUpdateInfo(Long id);
    
    // TODO 更新商品
    int update(Long id, PmsProductParam productParam);
    
    // TODO 分页查询商品
    Page<PmsProduct> getList(PmsProductQueryParam productQueryParam, Integer pageNum, Integer pageSize);
    
    // TODO 批量修改审核状态
    int updateVerifyStatus(List<Long> ids, Integer verifyStatus, String detail);

    // TODO 批量修改商品上架状态
    int updatePublishStatus(List<Long> ids, Integer publishStatus);
    
    // TODO 批量修改商品推荐状态
    int updateRecommendStatus(List<Long> ids, Integer recommendStatus);

    // TODO 批量修改新品状态
    int updateNewStatus(List<Long> ids, Integer newStatus);
    
    // TODO 批量删除商品
    int updateDeleteStatus(List<Long> ids, Integer deleteStatus);
    
    // TODO 根据商品名称或者货号模糊查询
    List<PmsProduct> list(String keyword);

}
